package com.tianlan.blog.entity;

import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import com.fasterxml.jackson.annotation.JsonFormat;

import cn.afterturn.easypoi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(value="employee_attendance对象", description="员工考勤表")
@Entity
@Table(name ="employee_attendance")
@EntityListeners(AuditingEntityListener.class)
@DynamicInsert
@DynamicUpdate
public class EmployeeAttendance {
	
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    @Excel(name = "工号", isImportField = "true_st")
    @Column(name = "job_number")
    private String jobNumber;
    
    @Excel(name = "姓名", isImportField = "true_st")
    @Column(name = "employee_name")
    private String employeeName;
    
    @Excel(name = "部门", isImportField = "true_st")
    @Column(name = "dept")
    private String dept;
    
    @Excel(name = "标准",groupName = "工作时数",orderNum = "3")
    @Column(name = "standard_work_hour")
    private String standardWorkHour;
    
    @Excel(name = "实际")
    @Column(name = "actual_work_hour")
    private String actualWorkHour;
    
    @Excel(name = "次数",groupName = "迟到",orderNum = "6")
    @Column(name = "late_number")
    private String lateNumber;
    
    @Excel(name = "分钟")
    @Column(name = "late_minute")
    private String lateMinute;
    
    @Excel(name = "次数",groupName = "早退",orderNum = "7")
    @Column(name = "leave_early_number")
    private String leaveEarlyNumber;
    
    @Excel(name = "分钟")
    @Column(name = "leave_early_minute")
    private String leaveEarlyMinute;
    
    @Excel(name = "正常",groupName = "加班时数",orderNum = "9")
    @Column(name = "overtime_hour")
    private String overtimeHour;
    
    @Excel(name = "假日")
    @Column(name = "holiday_overtime_hour")
    private String holidayOvertimeHour;
    
    @Excel(name = "出勤天数(标准/实际)")
    @Column(name = "attendance_day")
    private String attendanceDay;
    
    @Excel(name = "出差(天)")
    @Column(name = "business_trip_day")
    private String businessTripDay;
    
    @Excel(name = "旷工(天)")
    @Column(name = "absenteeism_day")
    private String absenteeismDay;
    
    @Excel(name = "请假(天)")
    @Column(name = "ask_for_leave_day")
    private String askForLeaveDay;
    
    @Excel(name = "标注",groupName = "加项工资",orderNum = "15")
    @Column(name = "standard_additional_wage")
    private String standardAdditionalWage;
    
    @Excel(name = "加班")
    @Column(name = "overtime_additional_wage")
    private String overtimeAdditionalWage;
    
    @Excel(name = "津贴")
    @Column(name = "allowance_additional_wage")
    private String allowanceAdditionalWage;
    
    @Excel(name = "迟到/早退",groupName = "减项工资",orderNum = "18")
    @Column(name = "late_deduction_wage")
    private String lateDeductionWage;
    
    @Excel(name = "请假")
    @Column(name = "ask_for_leave_deduction_wage")
    private String askForLeaveDeductionWage;
    
    @Excel(name = "扣款")
    @Column(name = "deduct_deduction_wage")
    private String deductDeductionWage;
    
    @Excel(name = "实际工资")
    @Column(name = "real_wage")
    private String realWage;
    
    @Excel(name = "备注")
    @Column(name = "remarks")
    private String remarks;
    
    @Excel(name = "人脸图片", orderNum = "23", width = 15, height = 30, type = 2)
    @Column(name = "img_url")
    private String imgUrl;
    
    @ApiModelProperty(value = "创建者")
    @Column(name = "creator")
    @CreatedBy
    private Integer creator;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @Column(name = "create_time")
    @CreatedDate
    private LocalDateTime createTime;
    
    @ApiModelProperty(value = "更新者")
    @Column(name = "operator")
    @LastModifiedBy
    private Integer operator;
    
    @ApiModelProperty(value = "更新日期")
    @Column(name = "update_time")
    @LastModifiedDate
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "1:删除 0:不删除")   
    @Column(name = "del_flag")
    private String delFlag;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getJobNumber() {
		return jobNumber;
	}

	public void setJobNumber(String jobNumber) {
		this.jobNumber = jobNumber;
	}

	public String getEmployeeName() {
		return employeeName;
	}

	public void setEmployeeName(String employeeName) {
		this.employeeName = employeeName;
	}

	public String getDept() {
		return dept;
	}

	public void setDept(String dept) {
		this.dept = dept;
	}

	public String getStandardWorkHour() {
		return standardWorkHour;
	}

	public void setStandardWorkHour(String standardWorkHour) {
		this.standardWorkHour = standardWorkHour;
	}

	public String getActualWorkHour() {
		return actualWorkHour;
	}

	public void setActualWorkHour(String actualWorkHour) {
		this.actualWorkHour = actualWorkHour;
	}

	public String getLateNumber() {
		return lateNumber;
	}

	public void setLateNumber(String lateNumber) {
		this.lateNumber = lateNumber;
	}

	public String getLateMinute() {
		return lateMinute;
	}

	public void setLateMinute(String lateMinute) {
		this.lateMinute = lateMinute;
	}

	public String getLeaveEarlyNumber() {
		return leaveEarlyNumber;
	}

	public void setLeaveEarlyNumber(String leaveEarlyNumber) {
		this.leaveEarlyNumber = leaveEarlyNumber;
	}

	public String getLeaveEarlyMinute() {
		return leaveEarlyMinute;
	}

	public void setLeaveEarlyMinute(String leaveEarlyMinute) {
		this.leaveEarlyMinute = leaveEarlyMinute;
	}

	public String getOvertimeHour() {
		return overtimeHour;
	}

	public void setOvertimeHour(String overtimeHour) {
		this.overtimeHour = overtimeHour;
	}

	public String getHolidayOvertimeHour() {
		return holidayOvertimeHour;
	}

	public void setHolidayOvertimeHour(String holidayOvertimeHour) {
		this.holidayOvertimeHour = holidayOvertimeHour;
	}

	public String getAttendanceDay() {
		return attendanceDay;
	}

	public void setAttendanceDay(String attendanceDay) {
		this.attendanceDay = attendanceDay;
	}

	public String getBusinessTripDay() {
		return businessTripDay;
	}

	public void setBusinessTripDay(String businessTripDay) {
		this.businessTripDay = businessTripDay;
	}

	public String getAbsenteeismDay() {
		return absenteeismDay;
	}

	public void setAbsenteeismDay(String absenteeismDay) {
		this.absenteeismDay = absenteeismDay;
	}

	public String getAskForLeaveDay() {
		return askForLeaveDay;
	}

	public void setAskForLeaveDay(String askForLeaveDay) {
		this.askForLeaveDay = askForLeaveDay;
	}

	public String getStandardAdditionalWage() {
		return standardAdditionalWage;
	}

	public void setStandardAdditionalWage(String standardAdditionalWage) {
		this.standardAdditionalWage = standardAdditionalWage;
	}

	public String getOvertimeAdditionalWage() {
		return overtimeAdditionalWage;
	}

	public void setOvertimeAdditionalWage(String overtimeAdditionalWage) {
		this.overtimeAdditionalWage = overtimeAdditionalWage;
	}

	public String getAllowanceAdditionalWage() {
		return allowanceAdditionalWage;
	}

	public void setAllowanceAdditionalWage(String allowanceAdditionalWage) {
		this.allowanceAdditionalWage = allowanceAdditionalWage;
	}

	public String getLateDeductionWage() {
		return lateDeductionWage;
	}

	public void setLateDeductionWage(String lateDeductionWage) {
		this.lateDeductionWage = lateDeductionWage;
	}

	public String getAskForLeaveDeductionWage() {
		return askForLeaveDeductionWage;
	}

	public void setAskForLeaveDeductionWage(String askForLeaveDeductionWage) {
		this.askForLeaveDeductionWage = askForLeaveDeductionWage;
	}

	public String getDeductDeductionWage() {
		return deductDeductionWage;
	}

	public void setDeductDeductionWage(String deductDeductionWage) {
		this.deductDeductionWage = deductDeductionWage;
	}

	public String getRealWage() {
		return realWage;
	}

	public void setRealWage(String realWage) {
		this.realWage = realWage;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public String getImgUrl() {
		return imgUrl;
	}

	public void setImgUrl(String imgUrl) {
		this.imgUrl = imgUrl;
	}

	public Integer getCreator() {
		return creator;
	}

	public void setCreator(Integer creator) {
		this.creator = creator;
	}

	public LocalDateTime getCreateTime() {
		return createTime;
	}

	public void setCreateTime(LocalDateTime createTime) {
		this.createTime = createTime;
	}

	public Integer getOperator() {
		return operator;
	}

	public void setOperator(Integer operator) {
		this.operator = operator;
	}

	public LocalDateTime getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(LocalDateTime updateTime) {
		this.updateTime = updateTime;
	}

	public String getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}
    
}
